// pages/login/login.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    username: '',
    password: '',
    showPassword: false,
    loading: false,
    canLogin: false
  },

  /**
   * 账号输入事件
   */
  onUsernameInput(e) {
    this.setData({
      username: e.detail.value
    });
    this.checkCanLogin();
  },

  /**
   * 密码输入事件
   */
  onPasswordInput(e) {
    this.setData({
      password: e.detail.value
    });
    this.checkCanLogin();
  },

  /**
   * 切换密码显示/隐藏
   */
  togglePassword() {
    this.setData({
      showPassword: !this.data.showPassword
    });
  },

  /**
   * 检查是否可以登录
   */
  checkCanLogin() {
    const { username, password } = this.data;
    const canLogin = username.trim().length > 0 && password.trim().length >= 6;
    this.setData({
      canLogin
    });
  },

  /**
   * 登录处理
   */
  async onLogin() {
    const { username, password, loading } = this.data;
    
    if (loading) return;
    
    if (!username.trim()) {
      wx.showToast({
        title: '请输入账号',
        icon: 'none'
      });
      return;
    }

    if (password.trim().length < 6) {
      wx.showToast({
        title: '密码至少6位',
        icon: 'none'
      });
      return;
    }

    this.setData({ loading: true });

    try {
      // 调用云函数进行登录验证
      const result = await wx.cloud.callFunction({
        name: 'quickstartFunctions',
        data: {
          type: 'login',
          username: username.trim(),
          password: password.trim()
        }
      });

      if (result.result.success) {
        // 登录成功，保存用户信息
        const userInfo = result.result.data;
        wx.setStorageSync('userInfo', userInfo);
        wx.setStorageSync('isLogin', true);

        wx.showToast({
          title: '登录成功',
          icon: 'success'
        });

        // 延迟跳转，让用户看到成功提示
        setTimeout(() => {
          const pages = getCurrentPages();
          if (pages.length > 1) {
            // 如果有上一页，返回上一页
            wx.navigateBack();
          } else {
            // 否则跳转到我的页面
            wx.switchTab({
              url: '/pages/profile/profile'
            });
          }
        }, 1500);
      } else {
        wx.showToast({
          title: result.result.message || '登录失败，请检查账号密码',
          icon: 'none',
          duration: 2000
        });
      }
    } catch (error) {
      console.error('登录失败:', error);
      wx.showToast({
        title: '登录失败，请稍后重试',
        icon: 'none',
        duration: 2000
      });
    } finally {
      this.setData({ loading: false });
    }
  },

  /**
   * 忘记密码
   */
  onForgotPassword() {
    wx.showModal({
      title: '忘记密码',
      content: '请联系管理员重置密码',
      showCancel: false
    });
  },

  /**
   * 注册
   */
  onRegister() {
    wx.showModal({
      title: '注册账号',
      content: '注册功能暂未开放，请联系管理员',
      showCancel: false
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 检查是否已登录
    const isLogin = wx.getStorageSync('isLogin');
    if (isLogin) {
      wx.showModal({
        title: '提示',
        content: '您已登录，是否重新登录？',
        success: (res) => {
          if (!res.confirm) {
            wx.navigateBack();
          }
        }
      });
    }
  }
});

